<?php
// +----------------------------------------------------------------------
// | VueAdmin框架[基于ThinkPHP5开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2018 http://www.vueadmin.org
// +----------------------------------------------------------------------
// | VueAdmin承诺基础框架永久免费开源，您可用于学习和商用，但必须保留软件版权信息。
// +----------------------------------------------------------------------
// | Author: sept <917088650@qq.com>，开发者QQ群：63131383
// +----------------------------------------------------------------------

namespace app\system\controller;


use app\lib\returnCode\Code;
use Firebase\JWT\JWT;
use think\facade\Env;

class Token
{
    public static function access_token($data = []) {
        $key = Env::get('JWT_APP_KEY');

        $token = array(
            "iss" => "", //签发者
            "aud" => "", //面向的用户
            "iat" => \request()->time(), //签发时间
            "nbf" => \request()->time(), //在什么时候jwt开始生效 
            "exp" => \request()->time()+7200, //token 过期时间
            "id" => '', //可以用户ID，可以自定义
            "user"=> [], //额外数据存储
        );
        $token = array_merge($token, $data);

        $jwt = JWT::encode($token, $key); //此处行进加密算法生成jwt

        return (string) $jwt;
    }

    public static function check($token) {

        $key = Env::get('JWT_APP_KEY');

        try{
            $decoded = JWT::decode($token, $key, array('HS256'));//进行解密算法

            return $decoded;
        }catch (\Exception $e){
            return $e->getMessage();
        }

    }
}